package com.youlai.boot.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.system.model.entity.TaskTable;
import com.youlai.boot.system.model.form.TaskTableForm;
import com.youlai.boot.system.model.query.TaskTableQuery;
import com.youlai.boot.system.model.vo.TaskTableVO;
import com.baomidou.mybatisplus.core.metadata.IPage;;
import java.util.List;
import java.util.Map;

public interface TaskTableService extends IService<TaskTable> {
    /**
     * 新增首页
     *
     * @param formData@return
     */
    boolean saveTasktable(TaskTableForm formData);

    /**
     * 根据医生查询任务
     * @param doctorId
     * @return
     */
    List<TaskTable> getTasksByDoctorId(Long doctorId);

    List<TaskTable> listAllTasks();
//    Result calculateRemainingTime(Integer id, LocalDateTime commencement);
        void addOrUpdateTask(TaskTable taskTable);
        void updateRemainingTime(Integer id);
    /**
     * 修改首页
     *
     * @param id   首页ID
     * @param formData 首页表单对象
     * @return
     */
    boolean updateTasktable(Long id, TaskTableForm formData);


    /**
     * 删除首页
     *
     * @param ids 首页ID，多个以英文逗号(,)分割
     * @return
     */
    boolean deleteTasktables(String ids);
    /**
     *首页分页列表
     *
     * @return
     */
    IPage<TaskTableVO> getTasktablePage(TaskTableQuery queryParams);

    IPage<TaskTableVO> getArchivePage(TaskTableQuery queryParams);

    /**
     * 获取首页表单数据
     *
     * @param id 首页ID
     * @return
     */
    TaskTableForm getTasktableFormData(Long id);


    boolean updateArchive(Long id,Integer archive);
//    ResponseEntity<byte[]> exportDocument(String format);

    boolean batchUpdateArchiveStatus(List<Long> id, Integer archive);
    List<Map<String,Object>> getTaskCompletionCount();
    Integer countTasksInLastSevenDays();
}
